home *** CD-ROM | disk | FTP | other *** search
/ NeXT Education Software Sampler 1992 Fall / NeXT Education Software Sampler 1992 Fall.iso / Programming / Source / winterp-1.13 / Coming_attractions next >
Encoding:
Text File  |  1991-10-06  |  14.0 KB  |  435 lines

  1. Decription of upcoming version of WINTERP (1.14):
  2. ==============================================================================
  3. # WINTERP Copyright 1989, 1990, 1991 Hewlett-Packard Company (by Niels Mayer).
  4. # XLISP version 2.1, Copyright (c) 1989, by David Betz.
  5. #
  6. # Permission to use, copy, modify, distribute, and sell this software and its
  7. # documentation for any purpose is hereby granted without fee, provided that
  8. # the above copyright notice appear in all copies and that both that
  9. # copyright notice and this permission notice appear in supporting
  10. # documentation, and that the name of Hewlett-Packard and David Betz not be
  11. # used in advertising or publicity pertaining to distribution of the software
  12. # without specific, written prior permission.  Hewlett-Packard and David Betz
  13. # make no representations about the suitability of this software for any
  14. # purpose. It is provided "as is" without express or implied warranty.
  15.  
  16. At the time of this 1.13 WINTERP release, I actually have version 1.14 up
  17. and running, but I haven't had enough time to test it extensively, nor have
  18. I had time to find out whether it is portable or not.
  19.  
  20. Thus, I went ahead and released version 1.13, which is known to be portable
  21. because it is directly derived from version 1.12, which seems to be
  22. portable. I figured I'd be better off releasing something reliable and
  23. portable for the X11r5 contrib tape.... Version 1.14 has many new features,
  24. and an all-new XLISP, and therefore has great potential for trouble.
  25.  
  26. I plan to have version 1.14 available in a few weeks to a few months,
  27. depending on how my schedule goes. Put yourself on the WINTERP mailing list
  28. if you want to find out about the 1.14 release, or watch for an
  29. announcement on comp.windows.x/comp.windows.x.motif.
  30.  
  31.             --------------------
  32.  
  33. Version 1.14 will include the following new features:
  34.  
  35. * Ability to communicate with interactive unix programs running as WINTERP
  36. subprocesses -- allow easy GUI construction around existing Unix
  37. applications. THis is partially implemented via an interface to Don Libes'
  38. expect library. When combined with a higher-level interface to
  39. XtAppAddInput(), the effect you get is very similar to the way gnuemacs
  40. uses process-filter/process-sentinel to run asynchronous subprocesses.
  41. This allows you to have widget displays which dynamically display the
  42. output of a subprocess, while the rest of the UI is still "active" and able
  43. to carry out it's intended actions.
  44.  
  45. * Trace and backtrace of 
  46.     callbacks
  47.     event handlers
  48.     action procedures
  49.     timeouts
  50.     input callbacks
  51.  
  52. * Callbacks and event handlers can directly access instance
  53.   variables of subclassed widgets.
  54.  
  55. * Resource to specify a load-path
  56.  
  57. * Callbacks (hooks) that fire upon a lisp error -- user can attach
  58. arbitrary code in order to do things like pop up a dialog box warning of
  59. error.
  60.  
  61. * All new improved version XLISP (xlisp 2.1c)
  62.         -- faster, faster garbage collect, uses less memory
  63.         -- closer to Common Lisp
  64.         -- features conditionally compilable
  65.  
  66. For more info on xlisp 2.1c see below:
  67.  
  68.             --------------------
  69.  
  70. From: toma@sail.LABS.TEK.COM (Tom Almy)
  71. Newsgroups: comp.lang.lisp.x
  72. Subject: Enhanced XLISP differences
  73. Date: 16 Aug 91 16:46:03 GMT
  74. Reply-To: toma@sail.LABS.TEK.COM (Tom Almy)
  75. Organization: Tektronix, Inc., Beaverton,  OR.
  76.  
  77. I have occasionally been asked about the differences between the
  78. standard XLISP 2.1 and the version I have modified (which I am now
  79. calling 2.1b). I have culled through my notes and produced the
  80. following document of the changes made. I hope I found everything.
  81.  
  82. Tom Almy
  83. toma@sail.labs.tek.com
  84. Standard Disclaimers Apply
  85.  
  86.  
  87. DIFFERENCES BETWEEN XLISP 2.1 AND XLISP 2.1b
  88. *********************************************
  89.  
  90. In the following document, CL means "Common Lisp compatible to
  91. the extent possible". CX means "now works with complex numbers". *
  92. means "implemented in LISP rather than C". # means "implementation
  93. moved from LISP to C".
  94.  
  95. **********************Bug fixes*********************************************
  96.  
  97. RESTORE did not work -- several bugs for 80x86 systems. Only one restore
  98.     would work per session -- all systems.
  99.  
  100. :downcase for variable *printcase* did not work with some compilers.
  101.  
  102. Modifications to make the source acceptable to ANSI C compilers.
  103.  
  104. Values for ADEPTH and EDEPTH changed to more reasonable values -- before
  105. this change the processor stack would overflow first, causing a crash.
  106.  
  107. On systems with 16 bit integers: STRCAT crashes when aggregate size of
  108. argument strings were greater than 32k. MAKE-ARRAY crashes on too-large
  109. arrays. DOTIMES, AREF, AREF and NTH place forms of SETF, 
  110. MAKE-STRING-INPUT-STREAM  and GET-OUTPUT-STREAM-STRING treat numeric
  111. argument modulo 65536. MAKE-STRING-INPUT-STREAM did not check for start>end.
  112.  
  113. Strings containing nulls could not be read or printed.
  114.  
  115. NTH and NTHCDR failed for zero length lists.
  116.  
  117. Unnamed streams did not survive garbage collections.
  118.  
  119. (format nil ...) did not protect from garbage collection the unnamed stream
  120. it creates.
  121.  
  122. SORT did not protect some pointers from garbage collection.
  123.  
  124. SYMBOL-NAME SYMBOL-VALUE SYMBOL-PLIST BOUNDP and FBOUNDP failed with
  125. symbol NIL as argument.
  126.  
  127. LAST returned wrong value when its argument list ended with a dotted pair.
  128.  
  129. *gc-hook* was not rebound to NIL during execution of gchook function, causing
  130. potential infinite recursion and crash.
  131.  
  132. Executing RETURN from within a DOLIST or DOTIMES caused the environment to
  133. be wrong.
  134.  
  135. When errors occured during loading, which were not caught, the file would
  136. be left open.
  137.  
  138. EVAL and LOAD did not use global environment. EVALHOOK's default environment
  139. was not global.
  140.  
  141. Invalid symbols (those containing control characters, for instance),
  142. can no longer be created with intern and make-symbol.
  143.  
  144. The key T, meaning "otherwise" in the CASE function used to be allowed in
  145. any position. Now it only means "otherwise" when used as the last case.
  146.  
  147. The lexical and functional environment of send of :answer (which defines
  148. a new method) are now used during the method's evaluation, rather than
  149. the global environment.
  150.  
  151. Signatures added for WKS files so that invalid ones will be rejected.
  152.  
  153. Checks added for file names and identifier names being too long.
  154.  
  155. Indexing code fixed to allow almost 64k long strings in 16 bit systems.
  156. It is no longer possible to allocate arrays or strings that are too long
  157. for the underlying system.
  158.  
  159. Circularity checks added to PRINT LAST BUTLAST LENGTH MEMBER and MAP 
  160. functions. An error is produced for all but MEMBER, which will execute 
  161. correctly.
  162.  
  163.  
  164. *******************User interface changes***********************************
  165.  
  166. -w command line argument to specify alternate or no workspace.
  167.  
  168. -? command line argument gives usage message.
  169.  
  170. init.lsp not loaded if workspace loaded.
  171.  
  172. Search path can be provided for workspaces and .lsp files.
  173.  
  174. Standard input and output can be redirected.
  175.  
  176. Display writes are buffered.
  177.  
  178. Character literals available for all 256 values. CL
  179.  
  180. Uninterned symbols print with leading #:. CL
  181.  
  182. PRIN1 generates appropriate escape sequences for control and
  183. meta characters in strings. CL
  184.  
  185. Read macro #. added. CL
  186.  
  187. Lisp code for nested backquote macros added. CL
  188.  
  189. Read macro #C added for complex numbers. CL
  190.  
  191. Semantics for #S read macro changed so that it can read in structures
  192. written by PRINT. CL
  193.  
  194. *******************New/changed data types***********************************
  195. NIL -- was treated as a special case, now just a normal symbol.
  196. symbols -- value binding can optionally be constant or special.
  197. complex numbers -- new type, can be integer or real.
  198. character strings -- The ASCII NUL (code 0) is now a valid character.
  199. objects -- objects of class Class have a new instance variable
  200.     which is the print name of the class.
  201. hash-table -- new type, close to CL
  202. random-state -- new type, CL
  203.  
  204. Property list properties are no longer limited to just symbols CL
  205.  
  206. *******************New variables/constants**********************************
  207.  
  208. *apply-hook* Now activated
  209. *displace-macros* Macros are replaced with their expansions when possible
  210. *dos-input* MSDOS only, uses DOS interface to interact with user. Allows
  211.     recall of earlier command(s).
  212. *print-level* CL
  213. *print-length* CL
  214. *random-state* CL
  215. *terminal-io* CL
  216. internal-time-units-per-second CL
  217. pi CL
  218.  
  219. *******************New functions********************************************
  220.  
  221. ACONS CL*
  222. ACOSH CL*
  223. ADJOIN CL
  224. APPLYHOOK CL
  225. ASINH CL*
  226. ATANH CL*
  227. BUTLAST CL
  228. CEILING CL
  229. CIS CL*
  230. CLREOL (clear to end of line -- MS/DOS only)
  231. CLRHASH CL
  232. CLS (clear screen -- MS/DOS only)
  233. COERCE CL
  234. COLOR (graphics -- MS/DOS only)
  235. COMPLEX CL
  236. COMPLEXP CL
  237. CONCATENATE CL
  238. CONJUGATE CL
  239. CONSTANTP CL
  240. COPY-ALIST CL*
  241. COPY-LIST CL*
  242. COPY-TREE CL*
  243. COSH CL*
  244. COUNT-IF CL except no :from-end
  245. DECF CL*
  246. DEFCLASS * (define a new class)
  247. DEFINST * (define a new instance)
  248. DEFMETHOD * (define a new method)
  249. DEFSETF CL*
  250. DRAW (graphics -- MS/DOS only)
  251. DRAWREL (graphics -- MS/DOS only)
  252. ELT CL
  253. EQUALP CL*
  254. EVERY CL
  255. FILE-LENGTH CL
  256. FILE-POSITION CL
  257. FILL CL*
  258. FIND-IF CL except no :from-end
  259. FLOOR CL
  260. FRESH-LINE CL
  261. FUNCTIONP CL*
  262. GENERIC (implementation debugging function)
  263. GET-INTERNAL-REAL-TIME CL
  264. GET-INTERNAL-RUN-TIME CL
  265. GETHASH CL
  266. GOTO-XY (position cursor -- MS/DOS only)
  267. HASH-TABLE-COUNT CL
  268. IDENTITY CL*
  269. IMAGPART CL
  270. INCF CL*
  271. INPUT-STREAM-P CL
  272. INTERSECTION CL
  273. LCM CL
  274. LIST* CL
  275. LOG CL
  276. LOGTEST CL*
  277. MAKE-HASK-TABLE CL
  278. MAKE-RANDOM-STATE CL
  279. MAP CL
  280. MAPHASH CL
  281. MODE (graphics -- MS/DOS only)
  282. MOVE (graphics -- MS/DOS only)
  283. MOVEREL (graphics -- MS/DOS only)
  284. NINTERSECTION CL*
  285. NOTANY CL
  286. NOTEVERY CL
  287. NREVERSE CL
  288. NSET-DIFFERENCE CL*
  289. NSET-EXCLUSIVE-OR CL*
  290. NUNION CL*
  291. OPEN-STREAM-P CL
  292. OUTPUT-STREAM-P CL
  293. PAIRLIS CL*
  294. PHASE CL
  295. POP CL*
  296. POSITION-IF CL except no :from-end
  297. PUSH CL*
  298. PUSHNEW CL*
  299. REALPART CL
  300. REDUCE CL except no :from-end
  301. REMHASH CL
  302. REMOVE-DUPLICATES CL except no :from-end
  303. REPLACE CL*
  304. ROUND CL
  305. SEARCH CL except no :from-end
  306. SET-DIFFERENCE CL
  307. SET-EXCLUSIVE-OR CL*
  308. SETF Placeform ELT  CL
  309. SETF Placeform GETHASH  CL
  310. SETF Placeform SEND*    (set instance variable)
  311. SIGNUM CL*
  312. SINH CL*
  313. SOME CL
  314. SUBSETP CL
  315. TANH CL*
  316. TIME CL
  317. TYPEP CL
  318. UNINTERN CL*
  319. UNION CL
  320. WITH-INPUT-FROM-STRING CL*
  321. WITH-OPEN-FILE CL*
  322. WITH-OUTPUT-TO-STRING CL*
  323. Y-OR-N-P CL*
  324.  
  325.     
  326. ******************Changed functions****************************************
  327.  
  328. &ALLOW-OTHER-KEYS CL (now functions, is no longer ignored)
  329. * CL CX (with no arguments, returns 1)
  330. + CL CX (with no arguments, returns 0)
  331. - CL CX
  332. / CX Almost CL (division of integers returns fp if no exact integer value)
  333. 1+ CL CX
  334. 1- CL CX
  335. ABS CL CX
  336. ACOS CL CX
  337. ALLOC (new optional second argument)
  338. APPLY CL (allows multiple arguments)
  339. AREF CL (now works on strings)
  340. ASIN CL CX
  341. ASSOC CL (added :key)
  342. ATAN CL CX (second argument now allowed)
  343. CHAR-CODE CL (parity bit is stripped)
  344. CLOSE CL (will close unnamed stream strings)
  345. COS CL CX
  346. DEFCONSTANT CL# (true constants)
  347. DEFPARAMETER CL# (true special variables)
  348. DEFVAR CL# (true special variables)
  349. DELETE (added keywords :key :start :end. Works on arrays and strings)
  350. DELETE-IF (added keywords :key :start :end. Works on arrays and strings)
  351. DELETE-IF-NOT (added keywords :key :start :end. Works on arrays and strings)
  352. EXP CL CX
  353. EXPT CL CX
  354. FORMAT (added directives ~D ~E ~F ~G ~& ~T ~\N and lowercase directives)
  355. HASH (hashes everything, not just symbols or strings)
  356. LOAD CL (uses path to find file)
  357. LOGAND CL (with no arguments, returns -1)
  358. LOGIOR CL (with no arguments, returns 0)
  359. LOGXOR CL (with no arguments returns 0)
  360. MAKE-STRING-INPUT-STREAM CL (:end NIL means end of string)
  361. MAKUNBOUND #
  362. MEMBER CL (added :key)
  363. NSTRING-DOWNCASE CL (string argument can be symbol, :end NIL means end of 
  364.     string)
  365. NSTRING-UPCASE CL (string argument can be symbol, :end NIL means end of 
  366.     string)
  367. OPEN CL (many additional options, as in Common Lisp)
  368. PEEK (fixnum sized location is fetched)
  369. PEEK-CHAR CL (input stream NIL is *standard-input*, T is *terminal-io*)
  370. POKE (fixnum sized location is stored)
  371. PPRINT (output stream NIL is *standard-output*, T is *terminal-io*)
  372. PRIN1 CL (output stream NIL is *standard-output*, T is *terminal-io*)
  373. PRINC CL (output stream NIL is *standard-output*, T is *terminal-io*)
  374. PRINT (output stream NIL is *standard-output*, T is *terminal-io*)
  375. RANDOM CL (works with random-states)
  376. READ (input stream NIL is *standard-input*, T is *terminal-io*)
  377. READ-BYTE CL (input stream NIL is *standard-input*, T is *terminal-io*)
  378. READ-CHAR CL (input stream NIL is *standard-input*, T is *terminal-io*)
  379. READ-LINE CL (input stream NIL is *standard-input*, T is *terminal-io*)
  380. REM CL (only two arguments now allowed, may be floating point)
  381. REMOVE (added keywords :key :start :end. Works on arrays and strings)
  382. REMOVE-IF (added keywords :key :start :end. Works on arrays and strings)
  383. REMOVE-IF-NOT (added keywords :key :start :end. Works on arrays and strings)
  384. RESTORE (uses path to find file, restores file streams)
  385. REVERSE CL (works on arrays and strings)
  386. SIN CL CX
  387. SORT (added :key)
  388. SQRT CL CX
  389. STRCAT * (now a macro, use of CONCATENATE is recommended)
  390. STRING-comparisonFunctions CL (string arguments can be symbols)
  391. STRING-DOWNCASE CL (string argument can be symbol, :end NIL means end of 
  392.     string)
  393. STRING-LEFT-TRIM CL (string argument can be symbol)
  394. STRING-RIGHT-TRIM CL (string argument can be symbol)
  395. STRING-TRIM CL (string argument can be symbol)
  396. STRING-UPCASE CL (string argument can be symbol, :end NIL means end of string)
  397. SUBLIS CL (modified to do minimum copying)
  398. SUBSEQ CL (works on arrays and lists)
  399. SUBST CL (modified to do minimum copying)
  400. TAN CL CX
  401. TERPRI CL (output stream NIL is *standard-output*, T is *terminal-io*)
  402. TRUNCATE CL (allows denominator argument)
  403. TYPE-OF (returns HASH-TABLE for hashtables, COMPLEX for complex, and LIST for 
  404.     NIL)
  405. UNTRACE CL (with no arguments, untraces all functions)
  406. WRITE-BYTE CL (output stream NIL is *standard-output*, T is *terminal-io*)
  407. WRITE-CHAR CL (output stream NIL is *standard-output*, T is *terminal-io*)
  408.  
  409.  
  410. ****************New messages for class Object*******************************
  411.  
  412.     :prin1 <stream>
  413.     :superclass *
  414.     :ismemberof <cls> *
  415.     :iskindof <cls> *
  416.     :respondsto <selector> * 
  417.     :storeon (returns form that will create a copy of the object) *
  418.  
  419. ****************New messages for class Class********************************
  420.  
  421.     :superclass *
  422.     :messages *
  423.     :storeon (returns form that will recreate class and methods) *
  424.  
  425.  
  426. -- 
  427. Tom Almy
  428. toma@sail.labs.tek.com
  429. Standard Disclaimers Apply
  430.  
  431.  
  432.  
  433.  
  434.  
  435.